package ar.edu.utn.frgp.banco.service.impl;

import java.util.ArrayList;
import java.util.List;


import ar.edu.utn.frgp.banco.dao.TransferenciasDao;

import ar.edu.utn.frgp.banco.dao.impl.TransferenciasDaoImpl;


import ar.edu.utn.frgp.banco.domain.Transferencia;

import ar.edu.utn.frgp.banco.exceptions.DataAccessException;
import ar.edu.utn.frgp.banco.exceptions.ServiceException;

import ar.edu.utn.frgp.banco.service.RecursoServiceTransferencias;

public class RecursoServiceTransferenciasImpl implements RecursoServiceTransferencias{
	
	private TransferenciasDao transferenciasDao;
	
	
	
	public RecursoServiceTransferenciasImpl() { 
		setTransferenciasDao(new TransferenciasDaoImpl());
		
	}
	
	public void setTransferenciasDao(TransferenciasDao transferenciasDao) {
		this.transferenciasDao = transferenciasDao;
	}


	public TransferenciasDao getTransferenciasDao() {
		return transferenciasDao;
	}
	

	
	
		

public void registrarTransferencia(Transferencia regTransferencia) throws ServiceException {
		
	
	try {
		transferenciasDao.altaTransferencia(regTransferencia);
	} catch (DataAccessException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
		
				
	}



public List<Transferencia> listarTransferencias() throws ServiceException {
	List<Transferencia> transferencias = new ArrayList<Transferencia>();
	try {
		
		transferencias = transferenciasDao.traerTodasLasTransferencias();
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return transferencias;
}

@Override
public List<Transferencia> listarTransferenciasPorCuentaOrigen(int nrocuenta)throws ServiceException {
	List<Transferencia> transferencias = new ArrayList<Transferencia>();
	try {
		
		transferencias = transferenciasDao.traerTodasLasTransferenciasPorOrigen(nrocuenta);
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return transferencias;
}

@Override
public List<Transferencia> listarTransferenciasPorCuentaDestino(int nrocuenta)throws ServiceException {
	List<Transferencia> transferencias = new ArrayList<Transferencia>();
	try {
		
		transferencias = transferenciasDao.traerTodasLasTransferenciasPorDestino(nrocuenta);
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return transferencias;
}











	
	
}
